﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using turnos.core.modelo;
using turnos.core.util;

namespace turnos.escritorio
{
    public partial class frmAMUsuarios : Form
    {
        public frmAMUsuarios()
        {
            InitializeComponent();
        }

        private void frmAMUsuarios_Load(object sender, EventArgs e)
        {
            groupBox1.Visible = false;
            btnAlta.Visible = true;
            try
            {
                Modelo.TurnosModelo.ConfigurarDGV(dgvUsuario, columnas_usuario());

                cargarGrilla();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }

        }

        private void cargarGrilla()
        {
            try
            {
                List<Usuarios> lista_usuarios = Modelo.TurnosModelo.TurnosC.TraerUsuarios();
                dgvUsuario.DataSource = lista_usuarios;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }

        private List<DataGridViewColumn> columnas_usuario()
        {
            List<DataGridViewColumn> retorno = new List<DataGridViewColumn>();

            DataGridViewColumn c = new DataGridViewTextBoxColumn();
            c.Name = "Identificacion";
            c.DataPropertyName = "IdUsuario";
            c.Visible = false;
            retorno.Add(c);

            DataGridViewColumn c1 = new DataGridViewTextBoxColumn();
            c1.Name = "Usuario";
            c1.Width = 200;
            c1.DataPropertyName = "Usuario";

            retorno.Add(c1);

            DataGridViewColumn c2 = new DataGridViewTextBoxColumn();
            c2.Name = "Rol";
            c2.Width = 200;
            c2.DataPropertyName = "Rol";
            retorno.Add(c2);

            DataGridViewColumn c3= new DataGridViewTextBoxColumn();
            c3.Name = "Puesto";
            c3.Width = 200;
            c3.DataPropertyName = "Puesto";

            retorno.Add(c3);

            return retorno;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            groupBox1.Visible = false;
            btnAlta.Visible = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            groupBox1.Visible = true;
            txtClave.Text = "";
            txtUsuario.Text = "";
            txtidusuario.Text = "";
        }

        private void dgvUsuario_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            groupBox1.Visible = true;
            btnAlta.Visible = false;
            string txt_usuario = dgvUsuario.CurrentRow.Cells[1].Value.ToString();
            Usuarios usuario = Modelo.TurnosModelo.TurnosC.TraerUsuarioPorLogin(txt_usuario);
            txtidusuario.Text = usuario.IdUsuario.ToString();
            txtUsuario.Text = usuario.Usuario;
            txtClave.Text = usuario.Contraseña;
            cbRol.Text = usuario.Rol;
            cbPuesto.Text = usuario.Puesto;
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                Modelo.TurnosModelo.TurnosC.GuardarUsuario(txtidusuario.Text, txtUsuario.Text, txtClave.Text, cbRol.Text, cbPuesto.Text);
                MessageBox.Show("Se guardó correctamente", "Confirmación");
                groupBox1.Visible = false;
                cargarGrilla();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Error recibido: " + ex.Message, "Error");
                
            }

            
        }
    }
}
